home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / feel-075.lha / feel0.75 / README
Text File  |  1992-06-19  |  4KB  |  100 lines

  1. ftp.bath.ac.uk: /pub/eulisp/feel-V0.7.tar.Z 
  2.  
  3. Welcome to FEEL.
  4.  
  5. Compiling: 
  6.     You ought to be able to type 'make' in the source directory,
  7. and get a working system (after changing some variables, and selecting
  8. a configuration). Read the Makefile and the manual for the options
  9. that may need changing for your system. You may need to do a 'make
  10. depend' to get the dependencies right (Assuming you have X11),
  11. although this is not absolutely necessary.
  12.  
  13. To run Feel, use the script 'feel' in the bin directory.
  14.  
  15. The bytecode interpreter:
  16. This exists, but is very experimental. The compiler will be released
  17. shortly. 
  18.  
  19. Extremely brief intro to EuLisp:
  20. --------------------------------
  21. Eulisp is a lisp dialect with the following features:
  22.  
  23. Reflective Object system 
  24. Telos replaces Common Lisp's defclass and defstruct with similarly
  25. named constructions, which differ in syntax. Check the definition for
  26. details (or defs.em for the real truth). 
  27.  
  28. Module system
  29. EuLisp code is generally written as a set of modules, with an explicit
  30. interface. Two Modules cannot import each other --- the importation
  31. graph has to be a DAG. In practice, this can be circumvented by
  32. (ab)using generics.
  33.  
  34. Dynamic binding is different, as are the defining forms for (module)
  35. global variables --- it is (deflocal foo <optional-value>).
  36. There is also defconstant for immutable globals.
  37.  
  38. Read the definition for more details.
  39.  
  40. Brief intro to using feel:
  41. --------------------------
  42.  
  43. Feel attempts to conform to the eulisp specification, but misses in
  44. several respects. These bugs (both in Feel and the definition) are
  45. being fixed.
  46.  
  47. Feel takes 2 important options:
  48. -heap <n> runs feel with n meg of heap space --- general allocation area
  49. -stack-space <n> runs feel with n meg of stack space --- 'C' and static
  50. allocation area. If feel stops with 'stack space wimped out' increase
  51. this parameter. The maximum value for both of these is 50Meg.
  52.  
  53. Feel is oganised into modules. Each module is a separate namespace,
  54. and by default imports and exports no bindings. 
  55. Initially you are in the root module, which contains no useful
  56. bindings. Interpreted modules are expected to have a '.em' suffix.
  57.  
  58. In any module,
  59. (!> module-name) will enter a module, loading it if necessary. It
  60. first looks for the file in the current directory, then down the
  61. environment variable FEEL_LOAD_PATH. All bindings in that module then
  62. become available. To interacively import one module into another, use
  63. (import <mod-name>)
  64.  
  65. (!>> module-name) is the same as !>, except that it always loads the
  66. module from disk.
  67.  
  68. (loaded-modules) gives the list of currently loaded modules (including
  69. the internal ones, which are in turn re-exported by standard0).
  70.  
  71. (load-module module-name) will load the module and print the
  72. resulting module. This is the easiest way of finding out what a module
  73. exports. 
  74.  
  75. (load-path) gives the current value of the load path (see above).
  76. (set-load-path x) sets the load path.
  77.  
  78. The !> and !>> forms can be used anywhere, while the others can only
  79. be invoked from the root module. !root will always return to the root
  80. module. 
  81.  
  82. Error handler:
  83. !exit exits the error handler
  84. !b gives a backtrace
  85. !q gives a quick backtrace
  86.  
  87. Ignore messages saying 'GC Error: ptr=<n> (recovered)' --- They do not
  88. mean anything much. 
  89.  
  90. Feel May occasionaly print a message like:
  91.  
  92. Compiled Elvira initialisation code error!!!
  93.  
  94. Trapping unhandled non-continuable "error"
  95.     Check for initcode module--- It is needed
  96.  
  97. This implies that the initialisation code cannot be found. Set the 
  98. FEEL_LOAD_PATH shell variable to include the Feel source directory.
  99.  
  100.